/*
 * $Id: QEEntryData.h 248 2008-09-08 15:31:38Z jon $
 * Sleeper
 *
 * Created by Jon Gordon on 2/8/08
 * Copyright Jon Gordon.  All rights reserved.
 * 
 * Permission is hereby granted, free of charge, to any person obtaining 
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including 
 * without limitation the rights to use, copy, modify, merge, publish, 
 * distribute, sublicense, and/or sell copies of the Software, and to 
 * permit persons to whom the Software is furnished to do so, subject to 
 * the following conditions:
 * 
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */


//
// Model object, holds data about this contest entry, which means everything
// except the list of QSOs.  Instances do nothing but hold, maintain, and
// validate data.
//
@interface QEEntryData : NSObject <NSCoding, NSCopying> {
@private
    NSString *name;
    NSString *entrantCallsign;
    NSString *address1;
    NSString *address2;
    NSString *city;
    NSString *stateProv;
    NSString *postCode;
    NSString *country;
	NSString *email;
	NSString *entryCallsign;
	NSNumber *outputPower;
	NSNumber *clubEntry;
	NSString *clubName;
    NSString *section;
    NSString *category;
    NSNumber *assisted;
    NSString *modeName;
    NSNumber *check;
    NSArray  *additionalOperators;
	NSString *rigDescription;
	NSString *antennaDescription;
	NSString *soapboxText;
    
    id extension;
}

// PRIMARY INITIALIZER
- (id)initWithName:(NSString *)newName
   entrantCallsign:(NSString *)newEntrantCallsign
          address1:(NSString *)newAddress1
          address2:(NSString *)newAddress2
              city:(NSString *)newCity
   stateOrProvince:(NSString *)newStateOrProvince
		  postCode:(NSString *)newPostCode
           country:(NSString *)newCountry
			 email:(NSString *)newEmail
	 entryCallsign:(NSString *)newEntryCallsign
	   outputPower:(NSNumber *)newOutputPower
		 clubEntry:(NSNumber *)newClubEntry
		  clubName:(NSString *)newClubName
           section:(NSString *)newSection
          category:(NSString *)newCategory
          assisted:(NSNumber *)newAssisted
          modeName:(NSString *)newModeName
             check:(NSNumber *)newCheck
additionalOperators:(NSArray *)newAdditionalOperators
	rigDescription:(NSString *)newRigDescription
antennaDescription:(NSString *)newAntennaDescription
	   soapboxText:(NSString *)newSoapboxText;

- (NSString *)name;
- (void)setName:(NSString *)newValue;

- (NSString *)entrantCallsign;
- (void)setEntrantCallsign:(NSString *)newValue;
- (BOOL)validateEntrantCallsign:(id *)ioValue error:(NSError **)outError;

- (NSString *)address1;
- (void)setAddress1:(NSString *)newValue;

- (NSString *)address2;
- (void)setAddress2:(NSString *)newValue;

- (NSString *)city;
- (void)setCity:(NSString *)newValue;

- (NSString *)stateProv;
- (void)setStateProv:(NSString *)newValue;

- (NSString *)postCode;
- (void)setPostCode:(NSString *)newValue;

- (NSString *)country;
- (void)setCountry:(NSString *)newValue;

- (NSString *)email;
- (void)setEmail:(NSString *)newValue;

- (NSString *)entryCallsign;
- (void)setEntryCallsign:(NSString *)newValue;
- (BOOL)validateEntryCallsign:(id *)ioValue error:(NSError **)outError;

- (NSNumber *)outputPower;
- (void)setOutputPower:(NSNumber *)newValue;

- (NSNumber *)clubEntry;
- (void)setClubEntry:(NSNumber *)newValue;

- (NSString *)clubName;
- (void)setClubName:(NSString *)newValue;

- (NSString *)section;
- (void)setSection:(NSString *)newValue;

- (NSString *)category;
- (void)setCategory:(NSString *)newValue;

- (NSNumber *)multiOp;

- (NSNumber *)assisted;
- (void)setAssisted:(NSNumber *)newValue;

- (NSString *)modeName;
- (void)setModeName:(NSString *)newValue;  

- (NSNumber *)check;
- (void)setCheck:(NSNumber *)newValue;

- (NSArray *)additionalOperators;
- (void)setAdditionalOperators:(NSArray *)newValue;

- (NSString *)rigDescription;
- (void)setRigDescription:(NSString *)newValue;

- (NSString *)antennaDescription;
- (void)setAntennaDescription:(NSString *)newValue;

- (NSString *)soapboxText;
- (void)setSoapboxText:(NSString *)newValue;
@end
